MODM0DEV

Section: Maintenance Commands (8)
Updated: September, 1993
Index Return to Main Contents
 

NAME

modm0dev.ttp, modm0dev.syslog - install the /dev/cua0 and /dev/ttyd0 devices  

SYNOPSIS

modm0dev.ttp      # light version
modm0dev.syslog   # syslog version
 

DESCRIPTION

modm0dev will install dial-in and dial-out devices for the Atari ST first serial interface, named /dev/ttyd0 and /dev/cua0 respectively. The former is usually attached to a getty process to handle the incoming calls, while the latter is used to initiate a call (for instance with cu or uucp ). The dial-in device monitors the DCD line of the serial port (unless you have specified the soft-carrier mode; see below) and no data can be read nor written if there is no connection. On the other hand, the dial-out device can communicate with the remote modem or terminal even if there is no connection present. These devices are mutually exclusive; although you can have simultaneously file descriptors for both devices, you won't be able to open the dial-out device if there is a connection on the dial-in one. Conversely, the dial-out device will be put in "idle" mode while /dev/cua0 is in use. Unlike the dial-in device, the dial-out device is always assumed to be opened in exclusive mode. Therefore, file locking is unnecessary on the dial-out device. It is rarely needed on the dial-in device, so it hasn't been implemented. It is sometimes desirable to assume that a carrier is always present on the serial device, especially when you have a terminal attached to it instead of a modem. This is called the "soft carrier" mode and can be modified with the TIOCSSOFTCAR ioctl call. In this case, it is also desirable to clear the hangup-on-close flag for the dial-in device, since a directly-attached terminal will probably ignore hangups. You can set this flag with the TIOCSHUPCL ioctl call. The installer should be run from your mint.cnf or /etc/rc.local configuration file, since init (1) will need the dial-in device to spawn a getty on it. It configures the serial interface to 19200 bps, one stop bit, eight-bit characters, and no parity. These settings can be changed by a subsequent stty (1) call. An enhanced version of stty , aware of the supplementary ioctl calls, is provided in the distribution. The software-carrier and hangup-control flags are called "local" and "hupcl". Apart from all standard terminal ioctl calls, the driver also recognizes the following ones (values are in modm0dev.h):
TIOCFLUSH
clears the input and output buffers.
TIOCSBRK
sets a break condition.
TIOCCBRK
clears a break condition.
TIOCIBAUD, TIOCOBAUD
get and set the baud rate. The supported speeds are: 300, 600, 1200, 1800, 2400, 4800, 9600 and 19200 bps.
TIOCGHUPCL
takes a pointer to a short int; returns 1 if hangup-on-close is active, 0 otherwise. Default is 1.
TIOCSHUPCL
takes a pointer to a short int, containing the new value of the hangup-on-close flag. The old value is returned.
TIOCGSOFTCAR
takes a pointer to a short int; returns 1 if soft-carrier mode is active, i.e. if a carrier is assumed to be always present. Otherwise returns 0, meaning that the hardware carrier line is monitored. Default is 0.
TIOCSSOFTCAR
takes a pointer to a short int, containing the new value of the soft-carrier flag. The old value is returned.

For security reasons, only root can open the dial-in and dial-out devices. An unprivileged user cannot change the global configuration either (baudrate, parity, and rts/cts, soft-carrier, hangup-on-close flags); the ioctl call will silently fail. However, setting the baud rate to 0 is allowed and will hang up the phone line immediately.  

SEE ALSO

stty(1), init(1)  

DIAGNOSTICS

Error messages during installation are reported on standard output, and modm0dev exits with a negative return-code. While the driver is running, hardware error messages (overrun error, frame error, parity error, break) are reported on the console if you're using the "light" version ( modm0dev.ttp ) or to the system logger with the "syslog" version ( modm0dev.syslog ).  

AUTHOR

Thierry Bousch       Internet: bousch@suntopo.matups.fr
44 Bd du Temple      Fidonet:  Thierry Bousch @ 2:320/100.9
75011 PARIS
FRANCE
 

BUGS

Overrun errors (MFP internal overflow) are frequent when data are received continuously at high speeds on not-too-fast machines; at 19200bps on an 8MHz Atari ST, there can be an erroneous byte every ten kilobytes. Is it a bug in my code, or is it MiNT's context-switching code which prevents the interrupts from being serviced properly? Since we are completely replacing the MFP interrupt routines, the standard device /dev/modem1 , as well as the standard bios functions, will no longer work (unless, of course, you redirect the AUX bios device). Synchronous modes are not supported. Not all speeds are supported. I did not try to implement higher speeds (38400 bps and more) because I already had too many errors at 19200 bps.


 

Index

NAME
SYNOPSIS
DESCRIPTION
SEE ALSO
DIAGNOSTICS
AUTHOR
BUGS

This document was created by man2html, using the manual pages.
Time: 08:42:16 GMT, February 14, 2025